package com.stylefeng.guns.modular.product.model;

import java.io.Serializable;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.enums.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableName;
import lombok.Data;

/**
 * <p>
 * 
 * </p>
 *
 * @author stylefeng123
 * @since 2019-03-15
 */
@Data
@TableName("sys_product_fx")
public class ProductFx extends Model<ProductFx> {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    @Excel(name = "Entry Date" ,format = "yyyy-MM-dd")
    @TableField("entry_date")
    private Date entryDate;

    @Excel(name = "Deal No." )
    @TableField("deal_no")
    private String dealNo;

    @Excel(name = "Trade Date" ,format = "yyyy-MM-dd")
    @TableField("trade_date")
    private Date tradeDate;

    @Excel(name = "Customer" )
    private String customer;

    @Excel(name = "Buy/Sell" )
    @TableField("buy_sell")
    private String buySell;

    @Excel(name = "Currency 1" )
    private String currency1;

    @Excel(name = "Notional" )
    private Double notional;

    @Excel(name = "Currency 2" )
    private String currency2;

    @Excel(name = "Counter value" )
    @TableField("counter_value")
    private Double counterValue;

    @Excel(name = "Strike" )
    private Double strike;

    @Excel(name = "Value Date" ,format = "yyyy-MM-dd")
    @TableField("value_date")
    private Date valueDate;

    @Excel(name = "Product Level 1" )
    @TableField("product_level1")
    private String productLevel1;

    @Excel(name = "Product Level 2" )
    @TableField("product_level2")
    private String productLevel2;

    @Excel(name = "Product Level 3" )
    @TableField("product_level3")
    private String productLevel3;

    @Excel(name = "Premium Ccy" )
    @TableField("premium_ccy")
    private String premiumCcy;

    @Excel(name = "Premium Amount" )
    @TableField("premium_amount")
    private Double premiumAmount;

    @Excel(name = "Expiry Date" ,format = "yyyy-MM-dd")
    @TableField("expiry_date")
    private Date expiryDate;

    @Excel(name = "Delivery Date" ,format = "yyyy-MM-dd")
    @TableField("delivery_date")
    private Date deliveryDate;

    @Excel(name = "Counter Party" )
    @TableField("counter_party")
    private String counterParty;

    @Excel(name = "Retrocession in Ccy 1" )
    @TableField("retrocession_in_ccy1")
    private String retrocessionInCcy1;

    @Excel(name = "Retrocession in USD" )
    @TableField("retrocession_in_USD")
    private String retrocessionInUsd;

    @Excel(name = "Traded By" )
    @TableField("traded_by")
    private String tradedBy;

    @Excel(name = "Entry Time" ,format = "yyyy-MM-dd HH:mm:ss")
    @TableField("entry_time")
    private Date entryTime;

    @Excel(name = "Position Status" )
    @TableField("position_status")
    private String positionStatus;

    @Excel(name = "Strategy Code" )
    @TableField("strategy_code")
    private String strategyCode;

    @Excel(name = "Classification" )
    private String classification;

    @Excel(name = "Gamma/Vega add-on" )
    @TableField("gamma_vega")
    private String gammaVega;

    @Excel(name = "Ccy2 Trade" )
    @TableField("ccy_trade")
    private String ccyTrade;

    @Excel(name = "Squared Options" )
    @TableField("squared_options")
    private String squaredOptions;

    @Excel(name = "X-Curncy Premium (USD)" )
    @TableField("curncy_premium")
    private Double curncyPremium;

    @TableField("input_time")
    private Date inputTime;

    @Override
    protected Serializable pkVal() {
        return this.id;
    }
}
